package com.xiaotu.storage;

import java.util.Date;

import org.springframework.stereotype.Component;

import com.xiaotu.common.util.Constants;
import com.xiaotu.common.util.DataRedisKeyUtils;
import com.xiaotu.common.util.SepratorUtil;
import com.xiaotu.storage.converter.AConverter;
import com.xiaotu.storage.converter.ConverterFactory;
import com.xiaotu.storage.model.CacheDataModel;

import net.sf.json.JSONObject;
/***
 * 骨朵网大基础信息（用于确定是否已爬取猫眼数据）
 * @author 
 *
 */
@Component("TvInfoSpiderTempStorageProcessor")
public class TvInfoSpiderTempStorageProcessor extends AHSetStorageProcessor{
	
	public static final String[] FIELD_ARR = new String[]{
			"id","tvid",
			"tv_dataid","tvname",
			"label","director",
			"actor","tvtype",
			"relasedate","supplement",
			"brodcastplatform",
			"resourcesiteid","collecttime",
			"cyclestatus","imageurl",
			"sets","timeLength",
			"screenwriter","producer",
			"issuecompany"};
	
	
	private static final String[] CONVERT_ARR = new String[]{
			AConverter.STRING_CONVERT,AConverter.STRING_CONVERT,
            AConverter.STRING_CONVERT, AConverter.STRING_CONVERT,
            AConverter.STRINGARRAY_CONVERT,AConverter.STRINGARRAY_CONVERT,
            AConverter.STRINGARRAY_CONVERT,AConverter.INTEGER_CONVERT,
            AConverter.STRING_CONVERT,AConverter.INTEGER_CONVERT,
            AConverter.STRINGARRAY_CONVERT,
            AConverter.STRING_CONVERT,AConverter.TIMESTAMP_CONVERT,
            AConverter.INTEGER_CONVERT,AConverter.STRING_CONVERT,
            AConverter.NUMBER_CONVERT,AConverter.NUMBER_CONVERT,
            AConverter.STRINGARRAY_CONVERT,AConverter.STRINGARRAY_CONVERT,
            AConverter.STRINGARRAY_CONVERT};

    private static final boolean[] THROW_ARR = new boolean[]{
    		true, true,
    		true, true,
    		true, true,
    		true, true,
    		true, true,
    		true, true,
    		true, true,
    		true, true,
    		true, true,
    		true, true};
	
	
	@Override
	protected String getRedisKey(Date date) {
		return DataRedisKeyUtils.getKey(Constants.DataRedisKey.TV_INFO_SPIDER_TEMP_YYYYMMDD, date);
	}

	@Override
	public String process(JSONObject target, CacheDataModel cacheData, Date date) {
        return this.list2CSVLine(ConverterFactory.convert(target, FIELD_ARR, CONVERT_ARR, THROW_ARR)
        		,SepratorUtil.SEP_PIPE);
	}

    @Override
    public String getTaskType()
    {
    	return Constants.SpiderTaskType.TV_GUDUO;
    }

	@Override
	public String getDataType() {
		return Constants.PageDataType.BASICINFO;
	}
	
}
